1
Il modello di esecuzione SIMT e la partizione in warp
AI032Lesson 6
00:00

Il SIMT (Single-Instruction, Multiple-Thread) modello è il battito cardiaco dell'architettura GPU. Mentre programmi thread individuali, l'hardware li coordina in una gerarchia a due livelli di griglie e blocchi. Per massimizzare l'efficienza, l'hardware suddivide ulteriormente questi blocchi in unità da 32 thread chiamate warp.

1. SIMT vs. SIMD

A differenza dell'SIMD per CPU (come SSE/AVX), dove si impacchetta manualmente i dati nei registri, il SIMT permette ai thread di apparire indipendenti. L'hardware raggruppa automaticamente i thread in warp, recuperando un'unica istruzione per tutti i 32 thread in modo da eseguirla simultaneamente.

2. Regola di linearizzazione

I programmatori usano threadIdx.x, y, z per la logica, ma l'hardware lo trasforma in una sequenza unidimensionale per la pianificazione:

Indice = x + (y × blockDim.x) + (z × blockDim.x × blockDim.y)
Blocco 2D(8 × 8)Warp 0: ID da 0 a 31Warp 1: ID da 32 a 63

Poiché la dimensione x è l'indice più veloce da variare, i thread con valori consecutivi di threadIdx.x valori si trovano solitamente nello stesso warp, il che è fondamentale per coalescimento della memoria.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>